home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD-Sensation: Golden Games / Amiga CD-Sensation - Ausgabe 2 - Golden Games (1996)(GTI - Schatztruhe)(DE)[!].iso / Adventurer's / ImpPro / Developer / GTModule.c < prev    next >
C/C++ Source or Header  |  1994-11-14  |  3KB  |  107 lines

  1. /**************************************************************************
  2.  *                                                                        *
  3.  * ????? Module --- A module for Imp Professional                         *
  4.  *                                                                        *
  5.  **************************************************************************/
  6.  
  7. #include "Module.h"
  8.  
  9. struct EasyStruct errEasyStruct =               // The error requester
  10. {
  11.    sizeof(struct EasyStruct), 0, "Module ERROR",
  12.    NULL, "Give up!"
  13. };
  14.  
  15. char PubName[] = IMP_SCREEN_NAME;
  16. struct Library *ImpBase = NULL;
  17.  
  18. VOID Open_All()
  19. {
  20.    IntuitionBase = (struct IntuitionBase *)OpenLibrary( "intuition.library", 37L );
  21.    if(!IntuitionBase)
  22.       Close_All("Could not open Intuition v37+");
  23.    
  24.    GadToolsBase = OpenLibrary( "gadtools.library", 37L );
  25.    if(!GadToolsBase)
  26.       Close_All("Could not open GadTools library v37+");
  27.  
  28.    if (!(AslBase = OpenLibrary("asl.library", 37L)))
  29.     Close_All("Could not open ASL library v37+");
  30.  
  31.    ImpBase = OpenLibrary( "imppro.library", 1L );
  32.    if (!ImpBase)
  33.       Close_All("Could not open ImpPro library v1+");
  34.    
  35.    PubScreenName = PubName;
  36.  
  37.    if (SetupScreen())         // SetupScreen returns a NULL if successful
  38.                         // SetupScreen should attempt to lock "IMP.SCREEN"
  39.    {
  40.       PubScreenName = NULL;   // Can't find IMP.SCREEN, so try Default public screen
  41.       if (SetupScreen())
  42.          Close_All("Could not lock IMP.SCREEN or Default public screen");
  43.    }
  44. }
  45.  
  46. VOID Close_All(char *errmsg)
  47. {
  48.    struct EasyStruct errEZ;
  49.    
  50.    if (errmsg)
  51.    {
  52.       errEZ = errEasyStruct;           // Display error message passed in
  53.       errEZ.es_TextFormat = errmsg;
  54.       EasyRequest(NULL, &errEZ, NULL);
  55.    }
  56.  
  57.    CloseWindow();             // CloseWindow should close your window
  58.    CloseDownScreen();         // CloseDownScreen should unlock the public screen
  59.    if (IntuitionBase)   CloseLibrary   ((struct Library *)
  60.                                         IntuitionBase );
  61.    if (GadToolsBase )   CloseLibrary   ( GadToolsBase  );
  62.    if (AslBase      )   CloseLibrary   ( AslBase       );
  63.    if (ImpBase      )   CloseLibrary   ( ImpBase       );
  64.    exit(0L);
  65. }
  66.  
  67.  VOID main(VOID)
  68.   {
  69.    Open_All();                       //  Setup everything
  70.    OpenWindow();    // Openwindow should open the window and set up the gadgets
  71.  
  72.    FOREVER
  73.    {
  74.         Wait(1L << Wnd->UserPort->mp_SigBit);      // Wait for message from Intuition
  75.                                          //  fill in Wnd with your window
  76.         HandleHorseIDCMP();                        // Handle IDCMP for Window
  77.    }
  78.   }
  79.  
  80.  
  81. // This is just a shell of a program, but you should get the gist of it.  Here's the routine
  82. // for locking and unlocking a public screen:
  83.  
  84. int SetupScreen( void )
  85. {
  86.     if ( ! ( Scr = LockPubScreen( PubScreenName )))
  87.         return( 1L );
  88.  
  89.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  90.         return( 2L );
  91.  
  92.     return( 0L );
  93. }
  94.  
  95. void CloseDownScreen( void )
  96. {
  97.     if ( VisualInfo ) {
  98.         FreeVisualInfo( VisualInfo );
  99.         VisualInfo = NULL;
  100.     }
  101.  
  102.     if ( Scr        ) {
  103.         UnlockPubScreen( NULL, Scr );
  104.         Scr = NULL;
  105.     }
  106. }
  107.